package com.集合.Collection___;

import java.util.ArrayList;
import java.util.List;

public class Collection接口的实现与常用方法 {
    @SuppressWarnings("all")
    public static void main(String[] args) {
        /**
         * 1.Collection的实现子类可以存放任意多个元素，每个元素可以是存放Object；
         * 2.有些Collection的实现类，可以存放重复的元素，有些不可以；
         * 3.Collection的实现类，有些是有序的（List），有些不是有序的（Set）
         */


        /**常用方法：
         * add(Object):添加元素;传进去的是对象，可以传任何对象；
         * remove(Object):删除指定元素，（指定对象或指定下标的元素）
         * contains（Object）：判断指定元素是否存在，返回true/false；
         * size（）：获取元素长度；
         * isEmpty（）：判断List是否为空；返回 true/false；
         * clear（）：清空List集合；
         * addAll（list）：添加多个元素，可以传整个List，也可以传部分元素；
         * containsAll（List）：查找多个元素是否都存在，可以传整个List，也可以传部分元素；
         * removeAll（List） ：删除多个元素，可以传整个List，也可以传部分元素；
         */
        List list1 = new ArrayList();//向上转型，编译类型是接口List，运行类型是ArraysList；

        //add()添加
        list1.add(1);//添加int对象，实际上底层是传入 new Integer(1);
        list1.add("韩顺平");
        list1.add("三国杀");
        System.out.println("list1 = "+list1);//输出List
        System.out.println("======================================================================");


        //remove()删除
        list1.remove(new Integer(1));  //把Integer 1 删除了
        list1.remove(1);  //把下标为1的元素 三国杀 删除了；
        System.out.println("list1 = "+list1);//韩顺平
        System.out.println("======================================================================");


        //contains()查找
        System.out.println(list1.contains("韩顺平"));//找到韩顺平返回true
        System.out.println(list1.contains("王八蛋"));//未找到王八蛋返回false；
        System.out.println("======================================================================");


        //clear()清空
        list1.clear();//清空掉了，只剩[];
        System.out.println("list1 = "+list1);//[]
        System.out.println("======================================================================");


        // addAll（list）：添加多个元素
        ArrayList list2 = new ArrayList();//创建list2，传入数据；
        list2.add("messi");
        list2.add("ronaldo");
        list2.add("neynar");
        System.out.println("list2 = "+list2);
        list1.addAll(list2);  //将list2 的所有数据放到list1 中
        System.out.println("list1 = "+list1);
        System.out.println("======================================================================");


        //containsAll（List）：判断多个元素是否都存在
        System.out.println(list1.containsAll(list2));//两个集合一模一样，，所以返回true
        list2.add("王维");//给list2添加一个数据；比list1多了一个元素；
        System.out.println("list2 = "+list2);
        System.out.println(list1.containsAll(list2));//false，因为王维不在list1中；
        System.out.println("======================================================================");


        //removeAll（List） ：删除多个元素，
        list2.removeAll(list1);//从list2中将list1的所有元素删除了，只剩王维；
        System.out.println("list2 = "+list2);//[王维]
        System.out.println("======================================================================");


    }
}
